package kr.co.goodwilldd.framework.security;

import kr.co.goodwilldd.framework.security.model.UserRegistration;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.User;

/**
 * 사용자 정보관련
 * 
 * @author GoodwillDD (kr.goodwilldd@gmail.com)
 * 
 */
public interface IAuthenticationFacade {
	/**
	 * 사용자 관련 권한
	 * @return
	 */
	Authentication getAuthentication();

	/**
	 * 사용자 아이디
	 * @return
	 */
	String getUsername();
	
	/**
	 * 사용자 정보
	 * @return
	 */
	User getUser();
	
	/**
	 * 사용자 가입 정보
	 * <pre>
	 * 주의!!! email이 실제 id임!!
	 * username은 실제 사용자 성명임~!!
	 * </pre>
	 * @return
	 */
	UserRegistration getUserdata();
	
	/**
	 * 사용자 정보를 리로드한다.
	 */
	void reloadUserAuthentication(String username);
}
